# helloworld: main.o print.o # helloworld 是我们要生成的目标
# 	gcc -o helloworld main.o print.o 
# # main.o print.o 是生成此目标的先决条件
# # shell命令，最前面的一定是一个tab键

# main.o: main.c print.h
# 	gcc -c main.c
# print.o: print.c print.h
# 	gcc -c print.c

# clean:
# 	rm helloworld main.o print.o

# # 改进一
# objects = main.o print.o # 变量的声明
# helloworld: $(objects)
# 	gcc -o helloworld $(objects)
# main.o: main.c print.h
# 	gcc -c main.c
# print.o: print.c print.h
# 	gcc -c print.c
# clean:
# 	rm helloworld $(objects)

# 改进二
objects = main.o print.o
make:$(objects)
	gcc -o helloworld $(objects)
$(objects):print.h # 都依赖print.h

# 自动推导不应该包含.c文件，只需要包含.h文件即可

# main.o:mian.c # 去掉了gcc -c main.c 让make自动推导

# print.o:print.c

clean:
	rm helloworld $(objects)